package com.eastjet.maintenance.activti;

//import org.activiti.engine.RepositoryService;
//import org.activiti.engine.RuntimeService;
//import org.activiti.engine.TaskService;
//import org.activiti.engine.HistoryService;
//import org.activiti.engine.repository.Deployment;
//import org.activiti.engine.runtime.ProcessInstance;
//import org.activiti.engine.task.Task;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

//@Service
//@Transactional
public class ActivtiServiceimp implements ActivtiService {

//    @Autowired
//    private RepositoryService repositoryService;
//
//    @Autowired
//    private RuntimeService runtimeService;
//
//    @Autowired
//    private TaskService taskService;
//
//    @Autowired
//    private HistoryService historyService;
//
//    /**
//     * 保存流程部署
//     *
//     * @param name 部署名称
//     * @param key  流程文件名
//     */
//    @Override
//    public void saveNewDeploy(String name, String key) {
//        try {
//            Deployment deployment = repositoryService.createDeployment()
//                    .addClasspathResource("processes/" + key)
//                    .name(name)
//                    .deploy();
//            System.out.println("部署成功，部署ID：" + deployment.getId());
//            System.out.println("部署名称：" + deployment.getName());
//        } catch (Exception e) {
//            System.err.println("部署失败: " + e.getMessage());
//        }
//    }
//
//    /**
//     * 启动流程实例
//     *
//     * @param variables 启动变量
//     * @return 进程实例
//     */
//    @Override
//    public ProcessInstance testStartProcess2(Map<String, Object> variables) {
//        Map<String, Object> assigneeMap = new HashMap<>();
//        assigneeMap.put("assignee0", "邓少强");
//        assigneeMap.put("assignee1", "张轲");
//        assigneeMap.put("assignee2", "杨博文");
//
//        return runtimeService.startProcessInstanceByKey(variables.get("key").toString(), assigneeMap);
//    }
//
//    /**
//     * 查看当前用户的任务
//     *
//     * @param key      流程定义键
//     * @param username 用户名
//     * @return 任务列表
//     */
//    @Override
//    public List<Map<String, Object>> testStartProcess3(String key, String username) {
//        List<Map<String, Object>> list = new ArrayList<>();
//        try {
//            List<Task> taskList = taskService.createTaskQuery()
//                    .processDefinitionKey(key)
//                    .taskAssignee(username)
//                    .list();
//            // TODO: 循环处理任务并添加到list中
//        } catch (Exception e) {
//            System.err.println("获取任务失败: " + e.getMessage());
//        }
//        return list;
//    }
//
//    /**
//     * 完成任务
//     *
//     * @param key    流程定义键
//     * @param userid 用户ID
//     */
//    @Override
//    public void completTask(String key, String userid) {
//        try {
//            Task task = taskService.createTaskQuery()
//                    .processDefinitionKey(key)
//                    .processInstanceId(userid)
//                    .singleResult();
//
//            if (task != null) {
//                taskService.addComment(task.getId(), task.getProcessInstanceId(), "同意");
//                taskService.complete(task.getId());
//            } else {
//                System.err.println("未找到任务");
//            }
//        } catch (Exception e) {
//            System.err.println("完成任务失败: " + e.getMessage());
//        }
//    }
}
